Many engineering applications require classification or categorization of objects representing real world entities based on features of the entities. Examples of such applications include processing media objects representing audio, video or graphics data, categorizing documents, analyzing geographical data, rendering maps, analysis of medical images for diagnosis and treatment, analysis of biological and chemical data samples, and the like. All real world entities have spatial and/or temporal characteristics which are used for classifying the entities. These characteristics are themselves represented as features of data objects that likewise have spatial and/or temporal characteristics. For example, a media object comprises data elements with spatial and/or temporal characteristics, in that the data elements have a spatial (distance between pixels within an individual image) and/or temporal extent (pixels values over time). Features derived from these characteristics are used for classification. For example, in image analysis, changes in pixel hue, saturation, or luminosity (either spatial within the image or temporal across images) are used to identify useful information about the image, whether to detect a person's face in a photograph, a tumor in a radiological scan, or the motion of an intruder in a surveillance video. Similarly, in signal processing of audio signals, changes in signal amplitude, frequency, phase, energy, and the like are used to classify signals and detect events of interest. In general then, classification of objects inherently relies on the data for the objects representing spatial and/or temporal characteristics of the objects themselves.
Examples of classification algorithms include clustering algorithms that assign objects to groups based on similarity of features of the objects. Certain clustering algorithms use an initial set of cluster seeds for computing clusters of a data set, for example, k-means clustering algorithm. The results obtained from these clustering algorithms can vary significantly depending on the choice of the initial cluster seeds. In some cases, the initial seeds are using pseudo-random or other stochastic processes. As a result, the generated clusters may correspond to a locally optimal solution depending on the initial cluster selection. To improve the quality of results, these algorithms are run with multiple initial cluster seeds and the best result selected. However, running the clustering algorithm multiple times with different initial sets of cluster seeds is a computationally intensive process, and typically only a limited number of initial cluster seed configurations can be used. Further, this approach is merely a heuristic approach in that is does not ensure that the resulting cluster seeds are optimally selected.